/******************************************************************************

                  版权所有 (C), 2020-2099, 上海谐勤

 ******************************************************************************
  文 件 名   : usr_data_buf.h
  版 本 号   : 初稿
  作    者   : lkk
  生成日期   : 2020年6月9日
  最近修改   :
  功能描述   : usr_data_buf.c 的头文件
  
  修改历史   :
  1.日    期   : 2020年6月9日
    作    者   : lkk
    修改内容   : 创建文件

******************************************************************************/

/*----------------------------------------------*
 * 外部变量说明                                 *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 外部函数原型说明                             *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 内部函数原型说明                             *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 全局变量                                     *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 模块级变量                                   *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 常量定义                                     *
 *----------------------------------------------*/

/*----------------------------------------------*
 * 宏定义                                       *
 *----------------------------------------------*/

#ifndef __USR_DATA_BUF_H__
#define __USR_DATA_BUF_H__


#ifdef __cplusplus
#if __cplusplus
extern "C"{
#endif
#endif /* __cplusplus */

#define  USR_DATA_BUF_MAX_SIZE  10000 //默认10k; 内存申请不到，会自动降低申请数值


/*==============================================*
 *      include header files                    *
 *----------------------------------------------*/


#include"stdint.h"
#include "rtthread.h"


/*==============================================*
 *      constants or macros define              *
 *----------------------------------------------*/


/*==============================================*
 *      project-wide global variables           *
 *----------------------------------------------*/



/*==============================================*
 *      routines' or functions' implementations *
 *----------------------------------------------*/
extern	void init_usr_data_buf(void);
extern uint16_t read_usr_buf(uint8_t* buf,uint16_t buf_max,uint8_t* data_source,uint8_t* data_des);
enum
{
	DATA_SOURCE_UNKNOW=0,//普通上报数据，因为写入源较多，故命名未知
	DATA_SOURCE_DTU_UART,//串口透传数据
};
extern uint8_t write_usr_buf(void* usr_data,uint16_t byte_num,uint8_t end_flag,uint8_t data_source,uint8_t send_des,uint8_t write_right);
__weak  void post_read_usr_buf(void);//通知上层取数据

#define wirte_one_pkgt(usr_data,byte_num)  write_usr_buf(usr_data,byte_num,1, DATA_SOURCE_UNKNOW,0, 0);

#ifdef __cplusplus
#if __cplusplus
}
#endif
#endif /* __cplusplus */


#endif /* __USR_DATA_BUF_H__ */
